package com.hmdp.config;

import com.hmdp.utils.LoginInterceptor;
import com.hmdp.utils.RefreshTokenInterceptor;
import org.springframework.context.annotation.Configuration;
import org.springframework.data.redis.core.StringRedisTemplate;
import org.springframework.web.servlet.config.annotation.InterceptorRegistry;
import org.springframework.web.servlet.config.annotation.WebMvcConfigurer;

import javax.annotation.Resource;

@Configuration
public class MvcConfig implements WebMvcConfigurer {

	@Resource
	private StringRedisTemplate stringRedisTemplate;

	@Override
	public void addInterceptors(InterceptorRegistry registry) {
		// 登录拦截器
		registry.addInterceptor(new LoginInterceptor())
				.addPathPatterns("/**")
				.excludePathPatterns(
						"/shop/**",//放行以shop开头的有请求的接口
						"/shop-type/**",
						"/upload/**",
						"/voucher/**",
						"/blog/hot",
						"/user/code",
						"/user/login"
				).order(1);//值越大，优先级越低，就越后执行

		// 刷新token的拦截器
		registry.addInterceptor(new RefreshTokenInterceptor(stringRedisTemplate))
				.addPathPatterns("/**")
				.order(0);//值越小，优先级越高，就越先执行
	}
}
